//
//  main.cpp
//  Staff management
//
//  Created by ryu on 2021/8/17.
//

/*
 公司中职工分为三类：普通员工、经理、老板，显示信息时，需要显示职工编号、职工姓名、职工岗位、以及职责

 普通员工职责：完成经理交给的任务

 经理职责：完成老板交给的任务，并下发任务给员工

 老板职责：管理公司所有事务
 */
/**
 - 退出管理程序：退出当前管理系统
 - 增加职工信息：实现批量添加职工功能，将信息录入到文件中，职工信息为：职工编号、姓名、部门编号
 - 显示职工信息：显示公司内部所有职工的信息
 - 删除离职职工：按照编号删除指定的职工
 - 修改职工信息：按照编号修改职工个人信息
 - 查找职工信息：按照职工的编号或者职工的姓名进行查找相关的人员信息
 - 按照编号排序：按照职工编号，进行排序，排序规则由用户指定
 - 清空所有文档：清空文件中记录的所有职工信息 （清空前需要再次确认，防止误删）
 */
#include <iostream>
using namespace std;
#include "workerManager.hpp"
//#include "workerManager.cpp"

void test();
class A1{
public:
    A1(){
        cout<<"test"<<endl;
    };
    virtual void fun() = 0;
    virtual ~A1() = 0;
};

int main(int argc, const char * argv[]) {
    // insert code here...
    
    int input;
    WorkerManager wm;
    while (true) {
        wm.showMenu();
        cout<<"选择你的操作："<<endl;
        cin>>input;
        switch (input) {
            case 0:
                wm.exitSys();
                return 0;
                break;
            case 1:
                wm.addWorker();
                break;
            case 2:
                wm.showList();
                break;
            case 3:
                wm.del();
                break;
            case 4:
                wm.update();
                break;
            case 5:
                wm.info();
            case 6:
                wm.sort();
            case 7:
                wm.~WorkerManager();
            default:
                break;
        }
    }
    return 0;
}

//void test(){
//    Worker *boss = NULL;
//    boss = new Boss(1,2,"boss");
//    boss->showInfo();
//    delete boss;
//
//    A1 *a1;
//    a1->fun();
//
//
//
//}
